/**
 * 
 */
package javapop.framework.generic;

import javapop.framework.generic.tool.GrammarVisitor;

/**
 * @author hakim
 *
 */
public class GRegle implements GrammarTree {

	private GDefRegle regle;
	private GParser parser;
	
	/**
	 * @param gParser 
	 * @param tDefRegle 
	 * 
	 */
	public GRegle(GDefRegle tDefRegle, GParser gParser) {
		regle = tDefRegle;
		parser = gParser;
	}
	

	@Override
	public <T,R,E extends Exception> T visit(GrammarVisitor<T,R, E> g) throws E {
		return g.visit(this);
	}


	/**
	 * @return the regle
	 */
	public GDefRegle getRegle() {
		return regle;
	}


	/**
	 * @return the parser
	 */
	public GParser getParser() {
		return parser;
	}
	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append(regle.toString());
		sb.append(" := ");
		sb.append(parser);
		sb.append(";");
		
		return sb.toString();
	}

}
	